home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 1 / Gekikoh Dennoh Club Vol. 1 (Japan).7z / Gekikoh Dennoh Club Vol. 1 (Japan) (Track 1).bin / kowin / archive / sys / kowin14d.lzh / include / wlib.h < prev   
C/C++ Source or Header  |  1995-12-01  |  10KB  |  326 lines

  1. /*
  2.  *        ウインドウライブラリ
  3.  *
  4.  *            Copyright    T.Kobayashi
  5.  *            1990.6.30
  6.  */
  7.  
  8. /*: v2.24+14 :*/
  9.  
  10. #ifndef    TRUE
  11. # define    TRUE    1
  12. # define    FALSE    0
  13. # define    ON        TRUE
  14. # define    OFF        FALSE
  15. #endif
  16. #ifndef    NULL
  17. # define    NULL    ((void*)0)
  18. #endif
  19.  
  20. /*
  21.  *        描画オプション
  22.  */
  23.  
  24. #ifndef    AttrDefault
  25. # define    ColorBlack        0
  26. # define    ColorGray        1
  27. # define    ColorGraphic    2
  28. # define    ColorWhite        3
  29. # define    AttrDefault        9
  30. # define    AttrHighLight    4
  31. # define    AttrReverse        8
  32. # define    AttrMesh        16
  33. # define    AttrWhiteRev    32
  34. # define    AttrUnderLine    64
  35. # define    AttrMesh2        128
  36. # define    OptionXor        0x10
  37.     typedef    enum {
  38.             OptionLine,
  39.             OptionBox,
  40.             OptionFill,
  41.             OptionShadow
  42.         } SheetOption;
  43. # define    ShadowUp    0
  44. # define    ShadowDown    1
  45.     typedef struct {
  46.             int            h, v, hword;        /*    大きさ                    */
  47.             unsigned short    *buf1;            /*    バッファへのポインタ    */
  48.             unsigned short    *buf2;            /*    バッファへのポインタ    */
  49.         } Sheet;
  50.     typedef    char    DrawBuf[28];
  51. #endif
  52.  
  53.  
  54. #ifndef    _WLIB_
  55.  
  56. #define    _WLIB_
  57.  
  58. /*
  59.  *        ウインドウID
  60.  */
  61. typedef    char    *WindowID;
  62.  
  63. /*
  64.  *        定数
  65.  */
  66. #define    WindowAttrTra            1    /* 透明属性                    */
  67. #define    WindowAttrInvisible        2    /* 不可視属性                */
  68. #define    WindowAttrGraphic        4    /* グラフィック使用属性(旧)    */
  69. #define    WindowAttrGraphic16        4    /* 16色モード                */
  70. #define    WindowAttrGraphic256    8    /* 256色モード                */
  71. #define    WindowAttrGraphic65536    12    /* 65536色モード            */
  72. #define    WindowAttrGraphicS256    16    /* Single 256x2(未使用定義だけ)    */
  73. #define    WindowAttrGraphicS16X4    20    /* Single 16x4 (〃)            */
  74. #define    WindowAttrGraphicS16    24    /* Single 16x1 (〃)            */
  75. #define    WindowAttrGraphicS65536    28    /* Single 65536(〃)            */
  76. #define    WindowAttrGraphicUse    28    /* グラフィック使用属性        */
  77. #define    Close                    1    /* クローズボックス            */
  78. #define    Push                    2    /* プッシュボックス            */
  79. #define    Icon                    4    /* アイコン化ボックス        */
  80. #define    Resize                    8    /* リサイズボックス            */
  81. #define    Zoom                    16    /* ズームボックス            */
  82. #define    DirectionX                1    /* X方向スクロール            */
  83. #define    DirectionY                2    /* Y方向スクロール            */
  84. #define    OffsetDefaultLevel        4    /* オフセット変更レベル        */
  85. #define    OffsetManagerLevel        8    /* オフセット変更レベル        */
  86.  
  87. /*  ファンクションキーの特殊コード  */
  88. #define    FuncKey            0x8000
  89. #define    FuncKeyF(key)    (0x8000+(key))        /* F1~F20 */
  90. #define    FuncKeyRollUp    0x8015
  91. #define    FuncKeyRollDown    0x8016
  92. #define    FuncKeyIns        0x8017
  93. #define    FuncKeyDel        0x8018
  94. #define    FuncKeyUp        0x8019
  95. #define    FuncKeyLeft        0x801A
  96. #define    FuncKeyRight    0x801B
  97. #define    FuncKeyDown        0x801C
  98. #define    FuncKeyClr        0x801D
  99. #define    FuncKeyHelp        0x801E
  100. #define    FuncKeyHome        0x801F
  101. #define    FuncKeyUnDo        0x8020
  102.  
  103.  
  104.  
  105. /*
  106.  *        イベント情報
  107.  */
  108. #define    EventAttrDefault    (EventOpenON | EventRedrawON | EventCloseON |     \
  109.                             EventResizeON | EventIconifyON | EventZoomON |    \
  110.                             EventMouseSwitchON | EventMouseEnterON |        \
  111.                             EventMouseOutON | EventKeyON                    )
  112.  
  113. #define    EventOpenON            (1<<EventOpen)
  114. #define    EventRedrawON        (1<<EventRedraw)
  115. #define    EventCloseON        (1<<EventClose)
  116. #define    EventPopON            (1<<EventPop)
  117. #define    EventPushON            (1<<EventPush)
  118. #define    EventMoveON            (1<<EventMove)
  119. #define    EventResizeON        (1<<EventResize)
  120. #define    EventIconifyON        (1<<EventIconify)
  121. #define    EventZoomON            (1<<EventZoom)
  122. #define    EventScrollON        (1<<EventScroll)
  123. #define    EventMouseSwitchON    (1<<EventMouseSwitch)
  124. #define    EventMouseMoveON    (1<<EventMouseMove)
  125. #define    EventMouseEnterON    (1<<EventMouseEnter)
  126. #define    EventMouseOutON        (1<<EventMouseOut)
  127. #define    EventKeyON            (1<<EventKey)
  128. #define    EventIntervalON        (1<<EventInterval)
  129. #define    EventNonON            (1<<EventNon)
  130. #define    EventUserON            (1<<EventUser)
  131. #define    EventGraphicON        (1<<EventGraphic)
  132.  
  133. typedef    enum {
  134.         EventOpen,
  135.         EventRedraw,
  136.         EventClose,
  137.         EventPop,
  138.         EventPush,
  139.         EventMove,
  140.         EventResize,
  141.         EventIconify,
  142.         EventZoom,
  143.         EventScroll,
  144.         EventMouseSwitch,
  145.         EventMouseMove,
  146.         EventMouseEnter,
  147.         EventMouseOut,
  148.         EventKey,
  149.         EventInterval,
  150.         EventNon,
  151.         EventUser,
  152.         EventGraphic,
  153.     } EventOption;
  154.  
  155. typedef    struct    {
  156.         EventOption    option ;
  157.         int            x, y, h, v ;
  158.         int            RightStat, LeftStat ;
  159.         int            LeftON, LeftOFF ;
  160.         int            RightON, RightOFF ;
  161.         int            MoveFlag ;
  162.         int            KeyCode ;
  163.         int            ShiftStat ;
  164.         int            Counter ;
  165.         int            ComData ;
  166.         void        *ComBuffer ;
  167.     } EventInfo;
  168.  
  169. /*
  170.  *        ユーザイベントの種類
  171.  */
  172. typedef    enum {
  173.         UserPaste,
  174.         UserString,
  175.         UserStrings,
  176.         UserSheet,
  177.         UserGraphic= 5,
  178.     }
  179.         UserEventOption ;
  180.  
  181. /*
  182.  *        シグナル
  183.  */
  184. typedef    enum {
  185.         SignalOpen,
  186.         SignalKill,
  187.         SignalChildKill,
  188.     }
  189.         SignalCode ;
  190.  
  191. /*
  192.  *        プロセス情報
  193.  */
  194. typedef    struct    {
  195.         char    *Entry ;
  196.         int        Status ;
  197.         int        Parent ;
  198.         char    *PSP ;
  199.         int        Level ;
  200.         int        HeapSize ;
  201.         char    *Heap ;
  202.         char    *SignalEntry ;
  203.     }
  204.         ProcessInfo ;
  205.  
  206. /*
  207.  *        大域変数
  208.  */
  209. #ifndef    WLIB
  210.     extern    WindowID    WindowRootID ;
  211.     extern    Sheet        *WindowBackPattern ;
  212.     extern    int            WindowProcessID ;
  213. #endif
  214.  
  215. /*
  216.     proto -e wlib.c > temp
  217.     proto -e draw.c > temp
  218.     proto -e winop.c > temp
  219.     proto -e winget.c > temp
  220.     proto -e winman.c > temp
  221.     proto -e wgraph.c > temp
  222. */
  223. extern    int        WindowConnectionClose( void );
  224. extern    int        WindowLoadExec( char*, char*, char*, void(*)() );
  225. extern    char    *WindowGetVersion( void );
  226. extern    void    WindowSetSignal( int(*)() );
  227. extern    int        WindowSendSignal( int, int, void* );
  228. extern    ProcessInfo    *WindowGetProcessInfo( int );
  229. extern    int        WindowSetParameter( int, int, void* );
  230.  
  231. extern    void    DrawSetClear( DrawBuf*, int );
  232. extern    void    DrawSetLine( DrawBuf*, int, int, int, int, int, int );
  233. extern    void    DrawSetPut( DrawBuf*, int, int, void* );
  234. extern    void    DrawSetSymbol( DrawBuf*, int, int, char*, int, int );
  235. extern    void    DrawSetPattern( DrawBuf*, void* );
  236. extern    void    DrawSetGraphicClear( DrawBuf*, int );
  237. extern    void    DrawSetGraphicLine( DrawBuf*, int, int, int, int, int, int );
  238. extern    void    DrawSetGraphicPut( DrawBuf*, int, int, int, int, short* );
  239.  
  240. /*    1992 by M.Tatsumi (ザル2), H.Ogasawara (COR.) */
  241. extern     void    DrawSetDot( DrawBuf*, int, int, int );
  242. extern     void    DrawSetGraphicDot( DrawBuf*, int, int, int );
  243. extern     void    DrawSetCircle( DrawBuf*, int, int, int, int, int, int );
  244. extern     void    DrawSetGraphicCircle( DrawBuf*, int, int, int, int, int, int );
  245.  
  246. extern    WindowID    WindowOpen( int, int, int, int, WindowID, int(*)() );
  247. extern    WindowID    WindowSimpleOpen( int, int, int, int, WindowID, int(*)() );
  248. extern    WindowID    WindowTitleOpen( int, int, int, int, WindowID, char*, int, int(*)() );
  249. extern    WindowID    WindowScrollOpen( int, int, int, int, WindowID, int, int, int, int, int, int(*)() );
  250. extern    void    WindowClose( WindowID );
  251. extern    void    WindowPop( WindowID );
  252. extern    void    WindowPush( WindowID );
  253. extern    void    WindowRedraw( WindowID );
  254. extern    void    WindowMove( WindowID, int, int );
  255. extern    void    WindowResize( WindowID, int, int, int, int );
  256. extern    void    WindowScroll( WindowID, int, int );
  257. extern    void    WindowDrawAbs( WindowID, void*, int );
  258. extern    void    WindowDraw( WindowID, void*, int );
  259. extern    int        WindowSendEvent( WindowID, void* );
  260. extern    int        WindowSendEventAll( int, void* );
  261.  
  262. extern    void    WindowSetHome( WindowID, int, int );
  263. extern    void    WindowSetAttr( WindowID, int );
  264. extern    void    WindowSetEventAttr( WindowID, int );
  265. extern    void    WindowSetClientData( WindowID, int, void* );
  266. extern    int        WindowGetEventAttr( WindowID );
  267. extern    void    WindowGetSize( WindowID, int*, int* );
  268. extern    int        WindowInner( WindowID, int, int );
  269. extern    int        WindowGetClientData( WindowID );
  270. extern    void    *WindowGetClientPointer( WindowID );
  271. extern    void    WindowGetPosition( WindowID, int*, int* );
  272. extern    void    WindowGetViewPosition( WindowID, int*, int* );
  273. extern    void    WindowGetScreenPosition( WindowID, int*, int* );
  274. extern    void    WindowGetViewSize( WindowID, int*, int* );
  275. extern    void    WindowGetHome( WindowID, int*, int* );
  276. extern    WindowID    WindowGetParent( WindowID );
  277. extern    WindowID    WindowGetNext( WindowID );
  278. extern    WindowID    WindowGetLast( WindowID );
  279. extern    WindowID    WindowGetChildTop( WindowID );
  280. extern    WindowID    WindowGetChildBottom( WindowID );
  281. extern    WindowID    WindowGetChild( WindowID, void* );
  282.  
  283. extern    void    WindowScreenInit( void );
  284. extern    void    WindowRootScroll( int, int );
  285. extern    void    WindowGetRootScroll( int*, int* );
  286. extern    void    WindowScreenQuit( void );
  287. extern    void    WindowSetPalet( int, int );
  288. extern    void    WindowSetRootEvent( int(*)() );
  289. extern    void    WindowSetBackPattern( void* );
  290. extern    void    WindowSetFocus( WindowID );
  291. extern    int        WindowGetEventInfo( void* );
  292. extern    int        WindowCheckEventInfo( void* );
  293. extern    void    WindowMouseCursor( int );
  294. extern    void    *WindowGetCommon( char*, int );
  295. extern    int        WindowResetCommon( char* );
  296. extern    int        WindowMoveOperation( WindowID, void* );
  297. extern    int        WindowResizeOperation( WindowID, void* );
  298. extern    void    *WindowGetResource( char*, char*, char* );
  299. extern    void    WindowReadResource( void );
  300. extern    void    WindowReadRC( void );
  301. extern    void    *WindowMemoryAlloc( int );
  302. extern    void    WindowMemoryFree( void* );
  303.  
  304. extern    void    WindowSetGraphicMode( int );
  305. extern    int        WindowGetGraphicMode( void );
  306. extern    int        WindowPaletInit( void );
  307.  
  308. /* 1991-1995 wsrv2.24+7~+14 by H.Ogasawara(COR.) */
  309. extern    void    *WindowSetFontAddress( int, void* );
  310. extern    void    *WindowGetFontAddress( int );
  311. extern    int        WindowSetScreenMode( int );
  312. extern    int        WindowGetScreenMode();
  313. extern    int        WindowGetScreenSize( int*, int* );
  314. extern    int        WindowGetAttr( WindowID );
  315. extern    void    *WindowSetHenDsp( void* );
  316. extern    int        WindowSetGraphicOffset( int, int, int );
  317. extern    void    WindowGetGraphicOffset( int*, int* );
  318. extern    void    *WindowSetManagerExec( int, int, void* );
  319. #define            WindowGetScreenTable(mode)    ((unsigned short*)    \
  320.                                         WindowSetScreenMode((mode)+256))
  321.  
  322. /* 最終更新 1995/12/01 H.Ogasawara (COR.) */
  323. #endif
  324.  
  325. /* :vi:se ts=4 sw=4: */
  326.